1
Migrando de Threads para Instâncias de Programa
AI023Lesson 4
00:00

No Triton, a unidade fundamental de execução muda da thread escalar do CUDA para a Instância de Programa. Isso representa uma abstração de um bloco de threads da GPU, onde uma única instância processa simultaneamente um bloco vetorizado de elementos.

1. A Identidade da Instância de Programa

Cada unidade de execução obtém sua identidade por meio de pid = tl.program_id(eixo=0). Pense em um Empilhadeira de Armazém (a Instância de Programa) pegando um Palet (o Bloco) de 128 caixas, comparado a um único trabalhador (thread do CUDA) pegando apenas uma caixa.

2. Triton vs. Tensores do PyTorch

Compreender a lacuna semântica é essencial para a gestão de memória:

  • Tensor do PyTorch: Um objeto Python do lado do host que envolve armazenamento em VRAM, passos (strides) e metadados.
  • Tensor do Triton: Um objeto de nível de compilador que representa valores ou ponteiros residentes em registradores ou SRAM.
Visualização do PyTorch
Objeto Python apontando para memória global contígua.
Visualização do Triton
Um bloco 2D/1D de dados dentro dos registradores do compilador.

3. Natureza SPMD

O Triton segue um Programa Único, Múltiplos Dados (SPMD) fluxo. Cada instância de programa executa o mesmo código exato código. A divergência ocorre apenas quando a lógica utiliza o pid para calcular deslocamentos específicos na memória.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>